package com.neuedu.corejava.ch12;

import java.io.File;

/**
 * 编写一个程序，能够在指定目录下查找文件或，目录
 * 
 * @author admin
 *
 */
public class FileFinder {
	/**
	 * 查找文件并返回文件名
	 * 
	 * @param basePath
	 * @param fileName
	 * @return
	 */
	public String find(String basePath, String fileName) {
		if (basePath == null || fileName == null) {
			return null;
		}

		File base = new File(basePath);

		File[] files = base.listFiles();// 列出参考目录下的所有文件或目录
		if (files != null) {
			for (File file : files) {
				if (file.isFile()) {
					String name = file.getName();
					if (name.equals(fileName)) {
						return file.getAbsolutePath();
					}
				} else {
					//System.out.println("找不到文件"+file.getAbsolutePath());
					String f = find(file.getAbsolutePath(), fileName);
					if (f != null) {
						return f;
					}
				}
			}
		}
		return null;
	}

	public static void main(String[] args) {
		String str = null;
		long start = System.currentTimeMillis();
		System.out.println("正在搜索文件........");
		//str = new FileFinder().find("C:\\", "FXSEXT.ecf");
		
		File[] roots = File.listRoots();
		for (File file : roots) {
			str = new FileFinder().find(file.getAbsolutePath(), "激活检查工具说明.docx");
			//System.out.println(file.getAbsolutePath());
		}

		if (str != null) {
			System.out.println("找到一个文件：" + str);
		} else {
			System.out.println("找不到文件！");
		}

		long stop = System.currentTimeMillis();
		System.out.println("执行时长：" + (stop - start) / 1000);

	}
}
